package com.example.entity.vo.hzView;

import com.example.untils.StringUtils;
import io.swagger.annotations.ApiModel;
import lombok.Data;

@Data
@ApiModel("BommeView")
public class BommeView {

    private String ME001;
    private String ME002;
    private String ME003;

    /**
     * 自定义对象是否相等
     * @param obj
     * @return
     */
    @Override
    public boolean equals(Object obj) {
        // 自反性检查
        if (this == obj) {
            return true;
        }
        // 类型检查
        if (obj == null || getClass() != obj.getClass()) {
            return false;
        }
        BommeView other = (BommeView) obj;
        // 属性比较  MF001, MF002, MF003, IsDefault, invrt_name
        if(StringUtils.isEmpty(ME001) || StringUtils.isEmpty(other.ME001)) return false;
        if(StringUtils.isEmpty(ME002) || StringUtils.isEmpty(other.ME002)) return false;
        if(StringUtils.isEmpty(ME003) || StringUtils.isEmpty(other.ME003)) return false;

        if(!ME001.equals(other.ME001)) return false;
        if(!ME002.equals(other.ME002)) return false;
        if(!ME003.equals(other.ME003)) return false;

        return true;
    }

    /**
     * 用于Map,Set中的hash值比较
     * @return
     */
    @Override
    public int hashCode() {
        // 使用一个常数乘以每个属性的哈希值
        int result = 17; // 选择一个非零常数
        result = 31 * result + (ME001 != null ? ME001.hashCode() : 0);
        result = 31 * result + (ME002 != null ? ME002.hashCode() : 0);
        result = 31 * result + (ME003 != null ? ME003.hashCode() : 0);
        return result;
    }

}
